package leetcode100;

import java.util.Stack;

/**
 * @author shkstart
 * 给定一个字符串A和其长度n，请返回一个bool值代表它是否为一个合法的括号串（只能由括号组成）。
 * @create 2022-11-26-21:15
 */
public class Meme7_2 {
    public boolean chkParenthesis(String A, int n) {

        Stack<Character> stack = new Stack<>();
        for (int i = 0; i < n; i++) {
            if (A.charAt(i) == '(') {
                stack.push(A.charAt(i));
            } else if (A.charAt(i) == ')') {
                //遇到右括号时，去栈里看一下栈顶元素
                if (stack.isEmpty()) {
                    //空栈的话出现不合法括号
                    return false;
                } else if (stack.peek() == '(') {
                    //栈顶是左括号就出栈 然后去看下一个元素
                    //不会在栈顶遇到右括号
                    stack.pop();
                }
            }
        }
        if (stack.isEmpty()) {
            return true;
        } else {
            return false;
        }


    }
}
